<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>v_hdmirxss1: xhdmi_hdcp_keys.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">v_hdmirxss1
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xhdmi__hdcp__keys_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xhdmi_hdcp_keys.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains the Xilinx HDCP key loading utility implementation as used in the HDMI example design. </p>
<p>Please see <a class="el" href="xhdmi__hdcp__keys_8h.html" title="This is the main header file for the Xilinx HDCP key loading utility used in the HDMI example design...">xhdmi_hdcp_keys.h</a> for more details.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who  Date       Changes
</p>
<hr/>
<p>
1.0   MG   26-01-2016 Initial release
1.1   YH   04-08-2016 Bypass HDCP Key password for VIPER run in board farm
1.2   GM   12-07-2017 Changed printf usage to xil_printf
                      Changed "\n\r" in xil_printf calls to "\r\n"
</pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a41a5a3c4961cea87e45b92d1129738b8"><td class="memItemLeft" align="right" valign="top">u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__hdcp__keys_8c.html#a41a5a3c4961cea87e45b92d1129738b8">EepromReadByte</a> (void *IicPtr, u16 Address, u8 *BufferPtr, u16 ByteCount)</td></tr>
<tr class="memdesc:a41a5a3c4961cea87e45b92d1129738b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads a number of bytes from the IIC serial EEPROM into a specified buffer.  <a href="#a41a5a3c4961cea87e45b92d1129738b8">More...</a><br/></td></tr>
<tr class="separator:a41a5a3c4961cea87e45b92d1129738b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4c47cc7a690a55b40711bc5b07695c0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__hdcp__keys_8c.html#af4c47cc7a690a55b40711bc5b07695c0">XHdcp_LoadKeys</a> (void *IicPtr, u8 *Hdcp22Lc128, u32 Hdcp22Lc128Size, u8 *Hdcp22RxPrivateKey, u32 Hdcp22RxPrivateKeySize, u8 *Hdcp14KeyA, u32 Hdcp14KeyASize, u8 *Hdcp14KeyB, u32 Hdcp14KeyBSize)</td></tr>
<tr class="memdesc:af4c47cc7a690a55b40711bc5b07695c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function loads the HDCP keys from the eeprom.  <a href="#af4c47cc7a690a55b40711bc5b07695c0">More...</a><br/></td></tr>
<tr class="separator:af4c47cc7a690a55b40711bc5b07695c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a85fb59f068baefa8d04e243f468e25"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xhdmi__hdcp__keys_8c.html#a1a85fb59f068baefa8d04e243f468e25">XHdcp_KeyManagerInit</a> (u32 BaseAddress, u8 *Hdcp14Key)</td></tr>
<tr class="memdesc:a1a85fb59f068baefa8d04e243f468e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initialize the HDCP 1.4 key manager.  <a href="#a1a85fb59f068baefa8d04e243f468e25">More...</a><br/></td></tr>
<tr class="separator:a1a85fb59f068baefa8d04e243f468e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a41a5a3c4961cea87e45b92d1129738b8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u8 EepromReadByte </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>IicPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>Address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>BufferPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>ByteCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads a number of bytes from the IIC serial EEPROM into a specified buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Address</td><td>contains the address in the EEPROM to read from. </td></tr>
    <tr><td class="paramname">BufferPtr</td><td>contains the address of the data buffer to be filled. </td></tr>
    <tr><td class="paramname">ByteCount</td><td>contains the number of bytes in the buffer to be read. This value is not constrained by the page size of the device such that up to 64K may be read in one call.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes read. A value less than the specified input value indicates an error.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a1a85fb59f068baefa8d04e243f468e25"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XHdcp_KeyManagerInit </td>
          <td>(</td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>BaseAddress</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>Hdcp14Key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initialize the HDCP 1.4 key manager. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if action was successful</li>
<li>XST_FAILURE if action was not successful </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="af4c47cc7a690a55b40711bc5b07695c0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XHdcp_LoadKeys </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>IicPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>Hdcp22Lc128</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Hdcp22Lc128Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>Hdcp22RxPrivateKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Hdcp22RxPrivateKeySize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>Hdcp14KeyA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Hdcp14KeyASize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>Hdcp14KeyB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Hdcp14KeyBSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function loads the HDCP keys from the eeprom. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if action was successful</li>
<li>XST_FAILURE if action was not successful </li>
</ul>
</dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
